
import java.io.Serializable;

import javax.jms.JMSException;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;


public class Subscriber implements Serializable {



	/**
	 * 
	 */
	private static final long serialVersionUID = 2821835685797606862L;

	TopicSubscriber sub;

	TopicSession session;

	public TopicSubscriber getSub() {
		return sub;
	}

	public TopicSession getSession() {
		return session;
	}

	
	public Subscriber(String topicID, TopicConnection connection, String selector){
		try {

			session = connection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);

			Topic topic = session.createTopic(topicID);
			sub = session.createSubscriber(topic, selector, true);
			
			// session.createSubscriber(arg0, arg1, arg2)
		} catch (JMSException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	// private static String subject = "Topic1";

	// public static void main(String[] args) throws JMSException,
	// InterruptedException {
	//
	// TopicConnectionFactory connectionFactory = new
	// ActiveMQConnectionFactory(url);
	//
	// final TopicConnection connection =
	// connectionFactory.createTopicConnection();
	//
	//
	// TopicSession session = connection.createTopicSession(false,
	// TopicSession.AUTO_ACKNOWLEDGE);
	//
	// Topic topic = session.createTopic(subject);
	//
	//
	// TopicSubscriber subscriber = session.createSubscriber(topic);
	//
	// connection.setExceptionListener(new ExceptionListener(){
	//
	// @Override
	// public void onException(JMSException exception) {
	// System.err.println("something bad happended: " + exception);
	//
	// }
	//
	//
	//
	// });
	//
	// subscriber.setMessageListener(new MessageListener() {
	//
	// @Override
	// public void onMessage(Message message) {
	//
	// if (message instanceof TextMessage) {
	// TextMessage msg = (TextMessage) message;
	// try {
	// System.out.println("Received: '" + msg.getText() + "'" +
	// "in the Listener!!");
	// } catch (JMSException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	//
	// }
	// }
	//
	// });
	//
	// connection.start();
	//
	// JFrame f = new JFrame();
	//
	// f.setSize(new Dimension(400, 400));
	// f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	// Runtime.getRuntime().addShutdownHook(new Thread(){
	//
	// public void run(){
	// try {
	// connection.close();
	// } catch (JMSException e) {
	// // TODO Auto-generated catch block
	// e.printStackTrace();
	// }
	// }
	// });
	// f.setVisible(true);
	//
	//
	//
	// }

}
